package br.com.ws.modelo;
/**
 *Esta entidade Ã© responsavel por realizar a autenticaÃ§Ã£o de um usuÃ¡rio no sistema*/
import javax.persistence.*;

@Entity
@NamedQueries({
            @NamedQuery(name="Usuario.listar",query ="SELECT u FROM Usuario u"),
})
public class Usuario {

    @Id
    private String login;

    private String senha;
    @Enumerated(EnumType.STRING)
    private Status status;

    @OneToOne(cascade={CascadeType.MERGE,CascadeType.REFRESH},mappedBy="usuario",fetch=FetchType.LAZY)
    private Funcionario funcionario;

    @ManyToOne(fetch=FetchType.LAZY,cascade={CascadeType.MERGE,CascadeType.REFRESH})
    @JoinColumn(name="grupocodigo")
    private Grupo grupo;


    public Usuario() {

    }

    public Grupo getGrupo() {
        return grupo;
    }

    public void setGrupo(Grupo grupo) {
        this.grupo = grupo;
    }



    public void setFuncionario(Funcionario funcionario) {
        this.funcionario = funcionario;
    }

    public Funcionario getFuncionario() {
        return funcionario;
    }


    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }



    public Status getStatus() {
        return status;
    }

    public void setStatus(Status status) {
        this.status = status;
    }

    public boolean efetuarLogin(Usuario usuario){
        boolean resultado = false;
        if (login.equals(usuario.getLogin()) && senha.equals(usuario.getSenha())){
            if(usuario.getStatus().equals(status.ATIVO)){
                resultado = true;
            }
        }
        return resultado;
    }
}

